Applications are conventionally developed for a single programming language environment at a time. For example, web-based applications are written in HTML (Hyper Text Markup Language) which can be interpreted by a client web browser. C++ code is used to program applications to be executed by a C++ compiler. Java programs are written to execute on a Java compiler. If a target electronic device lacks the correct software to compile the source code, the code cannot execute. The requirement of designing programs specifically for a particular end platform cuts against one of the goals of object-oriented programming which is the re-use of modular components of code.
Unfortunately, most application development environments today only support the designing of an application in a specific development language. In order to port the application to a different language, the source code must be translated from one language to another and recompiled in the new language. An additional problem with conventional application development environments is that GUI elements must be specified by the developer for each data value. The GUI does not adapt to the data value. Similar problems exist in that actions associated with objects do not adapt to the GUI context. Actions are specified for the developer for each selected object.
Another problem with traditional application development environments is that applications are not custom designed based upon the identity of the end user. For example, access to an application may be controlled based on access privileges (e.g.: an administrator may access certain applications to which a regular user lacks access), but the application itself does not change based upon the role of the user. The set level of access to an application results in a uniform level of access that may not be appropriate for all users. For example, there may be no need to display certain company information to outside sales representatives running an application whereas full-time employees may need access to the information.